package org.mybatis.generator.api.plus;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;

import java.util.List;

/**
 * 强制禁用 getter/setter 生成的插件（适用于所有 MBG 版本）
 */
public class DisableGetterSetterPlugin extends PluginAdapter {

    // 拦截 getter 方法生成：返回 false 表示不生成
    @Override
    public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass,
                                              IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable,
                                              ModelClassType modelClassType) {
        return false;
    }

    // 拦截 setter 方法生成：返回 false 表示不生成
    @Override
    public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass,
                                              IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable,
                                              ModelClassType modelClassType) {
        return false;
    }

    // 插件校验：返回 true 表示校验通过（必须实现）
    @Override
    public boolean validate(List<String> warnings) {
        return true;
    }
}